package com.study.map.dto;

import lombok.Data;
import java.util.List;

/**
 * 步行路径规划响应DTO
 *
 * @author study
 * @date 2025-08-31
 */
@Data
public class RouteWalkingResponse {

    /**
     * 返回状态码
     * 1：成功；0：失败
     */
    private String status;

    /**
     * 返回的状态信息
     */
    private String info;

    /**
     * 结果总数目
     */
    private String count;

    /**
     * 路径规划结果
     */
    private Route route;

    /**
     * 路径信息
     */
    @Data
    public static class Route {
        /**
         * 起点坐标信息
         */
        private String origin;

        /**
         * 目的地坐标信息
         */
        private String destination;

        /**
         * 路径规划方案列表
         */
        private List<Path> paths;
    }

    /**
     * 步行规划方案
     */
    @Data
    public static class Path {
        /**
         * 起点和终点的步行距离（米）
         */
        private String distance;

        /**
         * 步行时间预计（秒）
         */
        private String duration;

        /**
         * 步骤列表
         */
        private List<Step> steps;
    }

    /**
     * 步骤信息
     */
    @Data
    public static class Step {
        /**
         * 路段步行指示
         */
        private String instruction;


        /**
         * 道路名称
         */
        private String road;

        /**
         * 行驶距离（米）
         */
        private String distance;

        /**
         * 方向
         */
        private String orientation;


        /**
         * 此路段预计步行时间
         */
        private String duration;

        /**
         * 此路段坐标点
         */
        private String polyline;

        /**
         * 步行主要动作
         */
        private String action;

        /**
         * 步行辅助动作
         */
        private String assistantAction;

        /**
         * 这段路是否存在特殊的方式  0，普通道路 1，人行横道 3，地下通道 4，过街天桥 5，地铁通道 6，公园 7，广场 8，扶梯 9，直梯 10，索道 11，空中通道
         * 12，建筑物穿越通道13，行人通道14，游船路线15，观光车路线16，滑道 18，扩路 19，道路附属连接线 20，阶梯 21，斜坡 22，桥 23，隧道 30，轮渡
         */
        private String walkType;
    }

}